Presenting object properties

ABSTRACT

The present disclosure includes, among other things, systems, methods and program products for presenting object properties by receiving selection of a component of a model presented in a graphical user interface (GUI) of a computer aided design tool, the GUI including an interactive display element having an arrangement of property fields related to the selected component, determining property values associated with the property fields based on the selected component, and providing the determined property values in corresponding property fields of the interactive display element for presentation in the GUI in conjunction with the model, such that responsive to receiving selection of a different component of the model, the property fields are updated with property values corresponding to the different component.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of priority under 35 U.S.C. §119 toU.S. Provisional Application Ser. No. 61/309,288, filed on Mar. 1, 2010,which is incorporated by reference herein.

TECHNICAL FIELD

This disclosure relates generally to user interfaces forcomputer-implemented systems, and more particularly, to displayingobject properties in an interactive user interface of a softwareenvironment.

BACKGROUND

Computer programs often use a graphical user interface (GUI) to displaygraphical representations of electronic documents, images, text, etc.For example, in a CAD environment, a GUI may be used to display complexassemblies having multiple components or objects. Each object may haveone or more properties associated with it, including, for example,properties related to the object's name, size, color, thickness,appearance, creator, state, approving manager, etc. Some objects mayundergo numerous design changes or revisions during product development.

SUMMARY

In general, one aspect of the subject matter described in thisspecification can be embodied in a method that includes receivingselection of a component of a model presented in a graphical userinterface (GUI) of a computer aided design tool, the GUI including aninteractive display element having an arrangement of property fieldsrelated to the selected component, determining property valuesassociated with the property fields based on the selected component, andproviding the determined property values in corresponding propertyfields of the interactive display element for presentation in the GUI inconjunction with the model, such that responsive to receiving selectionof a different component of the model, the property fields are updatedwith property values corresponding to the different component. Otherembodiments of this aspect include corresponding systems, apparatus, andcomputer program products.

These and other embodiments can each optionally include one or more ofthe following features. Receiving selection of the component can includereceiving selection of multiple components. Providing the determinedproperty values can include providing a predetermined property value(e.g., “varies”) in the corresponding property field if property valuesassociated with the property field differ between the multiplecomponents. The property fields can include an image field and thedetermined property values can include a thumbnail image. Providing thedetermined property values can include providing thumbnail images of themultiple components in the image field for presentation in the GUI. Theembodiments can include receiving a replacement property value for aselected property field in the interactive display element, and updatinga same property value of each of the multiple components based on thereplacement property value. The determined property values can be afirst set of property values, such that the interactive display elementis operable to select a revision of the selected component, and suchthat the embodiments further include receiving input indicatingselection of a different revision of the selected component in theinteractive display element, and responsive to the input determining asecond set of property values based on the different revision of theselected component, and providing the second set of property values incorresponding property fields of the interactive display element forpresentation in the GUI in conjunction with the model. The differentrevision of the selected component can be a previous revision, such thatproviding the second set of property values can include highlightingdisplay fields having a different property value than a property valueof a recent revision of the selected component. Embodiments may furtherinclude receiving input from the interactive display element indicatingthe property value of the recent revision of the selected component isto be set to the different property value. The interactive displayelement can include a slide bar operable to select the revision of theselected component. Further, the interactive display element can beoperable to select a display mode, such that embodiments further includereceiving input indicating selection of a first display mode of theinteractive display element, and responsive to the input, providinginformation related to one or more additional components forsimultaneous presentation in the GUI in conjunction with the model.Providing information can include determining a set of property valuesfor each of the one or more additional components and providing at leasta portion of each set of property values. The arrangement of propertyfields can be a data card arrangement, such that providing informationcan include providing the information for presentation in the GUI as oneor more additional data cards corresponding to the one or moreadditional components, such that the portion of each set of propertyvalues is simultaneously displayed. Embodiments may further includereceiving a selection of the one or more additional components. Theinteractive display element can include a foreground display element forpresenting property values associated with an active component chosenfrom the selected component and the one or more additional components.Implementations may also include receiving input from the interactivedisplay element indicating selection of a different active component,and responsive to the input, providing property values associated withthe different active component for presentation in the foregrounddisplay element. The selected component and the one or more additionalcomponents can be presented in a circular list, such that the inputindicating selection of the different active component further indicateswhether the different active component selected is before or after theactive component in the circular list.

Particular embodiments of the subject matter described in thisspecification can be implemented to realize one or more of the followingadvantages. Data cards providing property information and/or revisioninformation related to components of an assembly may be made morerelevant when shown in the context of the assembly, thus helping toeliminate the potential confusion and uncertainty associated with usingand/or switching between two different processes/applications toreview/edit information. The tools and techniques disclosed herein mayalso enable a user to quickly find needed components and to makeappropriate edits while avoiding costly mistakes along the way.

The details of one or more embodiments of the invention are set forth inthe accompanying drawings and the description below. Other features,aspects, and advantages of the invention will become apparent from thedescription, the drawings, and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating an exemplar computing system 100.

FIG. 2A is an exemplar graphical user interface presenting a 3-D modeland a hierarchical list of included components.

FIG. 2B illustrates an exemplar interactive display element in agraphical user interface.

FIGS. 3A, 3B, 3C, and 3D illustrate an interactive display elementpresenting exemplar data card arrangements having multiple propertyfields.

FIG. 4 illustrates an exemplar flow diagram 400 of a technique forpresenting component property information within a graphical userinterface.

FIGS. 5A, 5B, and 5C illustrate an exemplar data card presentingproperty information for multiple components.

FIGS. 6A, 6B, and 6C illustrate an exemplar technique for selectingmultiple property fields in a data card.

FIGS. 7A, 7B, and 7C illustrate an animated sequence for activating arevision slide bar.

FIG. 8A illustrates an exemplar data card displaying a revision historyfor a selected component.

FIG. 8B illustrates an exemplar technique for updating propertyinformation in a current revision to match a previous revision.

FIG. 9 illustrates an exemplar interactive display element operable toselect a display mode.

FIGS. 10A-10C illustrate an animated sequence for activating a searchfield.

FIG. 11 illustrates an exemplar system configured to perform thetechniques described herein.

Like reference numbers and designations in the various drawings indicatelike elements.

DETAILED DESCRIPTION

FIG. 1 is a block diagram illustrating an exemplar computing system 100configured to perform the techniques described herein. The componentsinclude an application program 110, an operating system 120, andhardware/firmware devices 130. Application program 110 includes GUI 111,processing module 112, and database 113 for storing data (e.g.,electronic documents, tables, structures, etc.) in one or more files114. GUI 111 presents information to a user and provides functionalityfor the user's interaction with application program 110. Processingmodule 112 processes input received from GUI 111 and/or operating system120, retrieves, processes, and stores data in files 114, and deliversprocessed results to GUI 111 for presentation to the user.

FIG. 2A illustrates a graphical user interface 111 for viewing andmanipulating one or more CAD models. The user interface 111 can bepresented by an interactive CAD program or tool that allows for theviewing, creating, and modifying of one or more CAD models. Generallyspeaking, a CAD model (or “model”) contains information required torepresent one or more physical and analytical elements, andrelationships between them, load information, and result information.For example, a CAD model can store one or more representations of a CADmodel of a building, a circuit, a mechanical assembly, a communicationnetwork, a computer database system, a distributed processing system,etc. A CAD model can be stored in one or more files, object-orienteddatabases, relational databases, distributed objects, caches, datastructures, combinations of these, or other suitable storage. The term“components” as used herein is synonymous with the CAD model's contentsand includes CAD models.

In FIG. 2A, GUI 111 presents a model 200 of a product assembly and abrowser 210 including a hierarchically formatted list of includedcomponents. As illustrated, the selection of component 211 is indicatedby highlighted text in browser 210. GUI 111 also presents an applicationribbon 220 including a command 221 for invoking an interactive displayelement 230, for example, a data card user interface. In someimplementations, interactive display element 230 is invoked by an eventsuch as, for example, a key stroke, a combination of keys, a gesture, amouse click, a verbal command, etc.

As illustrated in FIG. 2B, interactive display element 230 presents acomponent data card 240 including property information corresponding toselected component 211 within GUI 111. Interactive display element 230retrieves data about a particular component from a database (e.g.,database 113) and presents that data within the CAD environment.Presenting interactive display element 230 within the CAD environment,or another suitable environment, provides the user an opportunity toreference the model as each component data card is examined. In someimplementations, the data card layout is customizable to includeproperties such as revision state, part name, part number, etc.,organized by tab to provide the user with finger tip access to relevantcomponent metadata without leaving the CAD environment. The interfacecan be repositioned within GUI 111, for example, by clicking on titlebar 250 with a mouse or other pointing device and dragging the interfaceto the desired location. In some implementations, model 200 may beresized and/or repositioned with respect to interactive display element230 to facilitate simultaneous viewing of model 200 and data card 240.

In this way, property information associated with selected component 211is presented in the context of model 200 and browser 210. Each data card240 represents a single component in model 200. As the user selectsdifferent components in model 200 or in browser 210, the propertyinformation displayed in interactive display element 230 (i.e., the datacard) changes to reflect the property values associated with thecurrently selected component.

FIG. 3A illustrates an exemplar interactive display element 300presenting component data card 310. Component data card 310 includes anarrangement of property fields 320 and property field labels 330. Inthis example, property field labels 330 include Part Number, Title,Category, Description, State, Revision, Last Modified, Product (P),Manager (M), and Vendor (V). Property values may include text and/orimages, e.g., thumbnail image 321.

Component data card 310 is customizable to include more or fewerproperty fields 320 in one or more tabs. Some implementations includedata cards having a different number of property fields 320 and/ordifferent types of property fields depending on the type of componentsincluded in model 200, and/or the particular component selected fordisplay. For example, FIGS. 3B-3C illustrate a data card having a secondtab 340 for presenting additional property fields 345. In furtherimplementations, the data cards include a single set of property fields320, 345 arranged in a data card. Based on the type of componentselected, some property fields may be deactivated (e.g., grayed out,locked, etc.) to indicate the property fields do not pertain to theselected component. In some implementations, a required property valueor a non-compliant property value is indicated by highlighting theproperty field 320 and/or the property field label 330, presenting animage (e.g., a red “bang” icon 351, as illustrated in FIG. 3D) withinthe property field, and/or presenting a text string (e.g., “N/A,” “TBD,”“!,” etc.) in the property field. A user may right-click on anon-compliant property value to view another perspective of the valuesfor a given property (e.g., a spreadsheet view 355 that breaks down thedistributed values by filename/component and property, listing whichspecific property value is assigned to which component). A user may thenuse spreadsheet view 355 for a property to manage non-compliant valueswithout leaving a summary data card 350 summarizing selected componentdata cards 310.

FIG. 4 illustrates an exemplar flow diagram 400 for presenting componentproperty information within GUI 111. After receiving input indicatingthe selection of a component (410), a processing module (e.g.,processing module 120) determines the property values associated withthe selected component (420), and provides the determined propertyvalues in corresponding property fields of component data card 310 forpresentation in GUI 111 (430). If input indicating selection of adifferent component is received, the process is repeated such that theproperty fields are updated with property values associated with thedifferent component (440).

Referring again to FIGS. 3A-3C, in some implementations, the propertyvalues associated with the selected component can be modified by theuser, for example, by clicking on the property field 320 and entering anew property value. In some cases, it may be necessary or beneficial fora user to examine and/or modify property values associated with multiplecomponents, simultaneously. Some implementations facilitate this byenabling the selection of multiple components. Multiple components areselected, for example, by pressing the [CTRL] key while clicking on thecomponents in model 200 or browser 210. In other implementations,components remain selected until deselected, thereby eliminating theneed for additional input while selecting multiple components. In stillother implementations, multiple components may be selected in responseto a query or search for a common property value or characteristic.Certain implementations enable the selection of multiple componentsusing a combination of these techniques and/or other techniques. In someexamples, the number of selected components appears at the top of datacard 310.

Referring now to FIG. 5A, in response to receiving input indicating theselection of multiple components, interactive display element 300displays a data card 510 presenting multiple thumbnail images 520 in thethumbnail property field. The text string “(varies)” is presented inproperty fields for which the property values associated with theselected components differ. In some implementations, differing propertyvalues are indicated by presenting an image or a different text stringincluding numbers, symbols, and/or characters, such as, for example,“N/A,” “Differ,” “-,” “!,” “3-values,” etc. in the property field. Insome implementations, the property field is highlighted to indicatediffering property values among the selected components for thecorresponding field. As described above, the property values for theselected components may be modified by the user, for example, byentering a new value in the corresponding property field. As a result ofthis edit, the entered value is applied to each of the selectedcomponents.

FIG. 5B illustrates an exemplar implementation of a data card deck 530including a collection of thirty-four data cards. Deck controls 540provide the user with a quick, easy way to move through the cards inorder to review/edit the component properties and/or metadata. Selectioninterface 545 enables the user to specify the source of the card deck(e.g., a current selection of components, a saved selection ofcomponents, etc.) In some implementations, the component data cards inthe deck are collected based on part status or another parameter,relative location with respect to a selected component (e.g., adjacentcomponents), individually selected components from browser 210, apreviously saved selection, component data cards associated with anassembly or sub-assembly of model 200, etc. Deck controls 540 enable theuser to interactively query individual parts in GUI 111 by flippingthrough the cards like a digital rolodex using a user input device,including, for example, a mouse, keyboard arrow keys, etc. In someimplementations, as a data card is moved to the front of the stack, thecorresponding component is highlighted in model 200. As described below,some implementations may include a search field operable to identifycomponent data cards matching the search criteria.

FIG. 5C illustrates an exemplar summary data card 550 (“home card”)including a cards list 555 and property summary table 560. Propertysummary table 560 summarizes the property values for each component datacard in card deck 530 and allows for bulk editing of the card deck. Asillustrated, card list 555 displays the name of each data card in thedeck. If the user selects a card from the list 555, only the values forthe selected card are displayed. If the user selects multiple cards fromcard list 555, the values for the selected cards are summarized inproperty summary table 560. As described above, where multiple valuesare used across different cards, a predetermined value (e.g., “varies”or other value as determined by the user, administrator, or programmerdetermines) is displayed. The user can click expansion button 565 to seethe list of values and the number of times a value is used. For example,in FIG. 5C, value collector interface 570 shows the value for propertyfield, “Manager,” has the following values through the deck: JoshDagg—10 times, Todd Nicol—4 times, Irvin Hayes—3 times, and 17 datacards include a blank value. By providing the various values for aproperty in a single collection, a user may be able to quickly reviewthe value distribution and determine which values need editing. In someimplementations, value collector interfaces 570 are available on bothsummary data card 550 as well as on individual component data cards. Onindividual component data cards, value collector interface 570 listseach value available for the corresponding property as well as thedistribution of each value in the deck such that a user can seeimmediately how a property value for a particular component compares tothe rest of the data card deck.

In some implementations, data card deck 530 includes an edit mode and aread-only mode. In read-only mode, value collector interface 570 enablesthe user to select cards based on a property value. When the userselects a value from value collector interface 570, only the cards thathave that value assigned to that property are selected in cards list 555and, consequently, summarized in property summary table 560. In theexample illustrated in FIG. 5C, only the five corresponding data cardshaving a Manager value of “Todd Nicol” are highlighted in cards list 555and summarized in property summary table 560. In some implementations,two or more property fields may have an associated value collectorinterface 570 operable to select one of a plurality of property valuesto narrow the card selection as data cards are matched to the multipleselected property values. As a value is set in each value collectorinterface 570, the selection set is narrowed. In edit mode, summary datacard 550 provides a means for bulk editing cards in the data card deck.While in edit mode, a user may select a value from value collectorinterface 570 to be applied to the entire deck. In some implementations,the user may select whether to apply the value to the entire deck oronly the cards selected in cards list 555.

In some examples, property values can be copied from a first componentdata card and applied to a second component data card without the needto retype the values. The target property fields are selected, forexample, by drawing a selection box 610 around the area of the data cardto be copied as illustrated in FIGS. 6A and 6B. In some implementations,multiple selection boxes 610 may be drawn to select property fields fromtwo or more areas of the data card, including separately tabbed areas ofthe data card. A copy command is invoked, for example, by right clickingwithin interactive display element 300 and selecting the copy command620 (e.g., “Add to Register” as illustrated in FIG. 6B). In response toreceiving input indicating the copy command has been invoked, aprocessing module (e.g., processing module 112) stores the propertyvalues associated with the selected property fields, for example, in aprogram memory. Once stored, a user may apply the property values to adifferent component by selecting the component to display thecorresponding data card. An apply command is invoked, for example, byright clicking within interactive display element 300 and selecting theapply command 630 as illustrated in FIG. 6C. In response to receivinginput indicating the apply command has been invoked, a processingmodule, (e.g., processing module 112) determines which property fieldsto update based on the stored information and updates the appropriateproperty fields with the corresponding stored property values. Thus,property values may be copied from one component data card to anotherwhile avoiding the costly risk associated with typing mistakes.

As described above, components may undergo numerous design changes orrevisions during product development. Thus, another aspect of thisdisclosure relates to enabling the presentation of a revision historywithin GUI 111. Design changes are stored in a revision history of theobject and are accessible via interactive display element 300 byactivating revision slide bar 700. In some implementations, revisionslide bar 700 is hidden from view until activated by placing the mousepointer or cursor over a particular area 720 of data card 710, forexample, an edge of the data card. Revision slide bar 700 is similarlydeactivated/hidden by placing the mouse pointer or cursor over the samearea 720 of data card 710. FIGS. 7A-7C illustrate an animated sequencefor activating revision slide bar 700. Revision slide bar 700 enables auser to examine older revisions of the component by manipulating theposition of scroll pointer 730. After receiving input indicatingselection of an older revision of a component, a processing module(e.g., processing module 112) determines the property values associatedwith the selected revision and provides the property values forpresentation in GUI 111. In some implementations, property valuesdiffering from the latest revision are indicated by highlighting theproperty field and/or text. For example, FIG. 8A illustrates a previousrevision (i.e., Revision C) of the shock bushing illustrated in FIG. 7C(Revision E). As indicated by the highlighting of the thumbnail image801, Title 802, Description 803, Revision 804, and Last Modified fields805, the corresponding property values in the latest revision differfrom those presented in revision C.

In further implementations, a property value associated with an earlierrevision of a component may be applied to the latest revision of thecomponent by selecting the corresponding property field and invoking acommand to make the property value current, such as the “Make Current”command 820 illustrated in FIG. 8B. The property field is selected, forexample, by right clicking within the corresponding area of the datacard. In response to input indicating selection of a property fieldhaving a value different from the current revision, a command menu 810is presented in GUI 111 by interactive display element 300. A user maythen select the “Make Current” command 820 from the command menu. Afterreceiving input indicating selection of a property field to be appliedto the latest revision, a processing module (e.g., processing module112) updates the property value associated with the latest revision andprovides the property value for presentation in GUI 111. In someimplementations, the selected property value is also applied to each ofthe intermediate revisions (i.e., Revision D in this example).

A further aspect of this disclosure relates to enabling quickidentification of a component in model 200 and providing techniques fornavigating between multiple data cards. FIG. 9 illustrates an exemplarinteractive display element 900 operable to select an isolation displaymode in which the selected component is highlighted in model 200 and aradial display mode in which data cards for multiple components arepresented simultaneously in GUI 111.

The isolation display mode is selected, for example, by invoking acommand or activating a display mode button 910 in interactive displayelement 300. Highlighting of the selected component in model 200 isaccomplished by presenting non-selected components in a semi-transparentor transparent manner such that only the selected component has anopaque appearance. Other implementations accomplish the highlighting ofthe selected component in other ways, including, for example, presentingnon-selected components in gray scale or black and white and theselected component in color, accentuating the features of the selectedcomponent by using thicker lines and/or thinner lines on non-selectedcomponents, etc.

In further implementations, selection of the radial display mode causesmultiple data cards to be presented simultaneously in GUI 111. Inresponse to receiving input indicating selection of the display mode, aprocessing module (e.g., processing module 112) determines a set ofproperty values for each of one or more additional components andprovides at least a portion of the determined property values forpresentation in GUI 111. As illustrated in FIG. 9, a data card deck 920is presented in a radial or fanned-out display format including a datacard 921 in the foreground (i.e., the active or currently selectedcomponent) and additional data cards 922 in the background. Additionalcomponents may be selected as described above with respect to selectingmultiple components and/or in response to a search or query, asdescribed below. After receiving a selection of one or more additionalcomponents, the processing module determines the corresponding propertyvalues and provides at least a portion of the determined property valuesfor presentation in GUI 111 as separately displayed data cards. A usermay flip forward and/or backward through data card deck 920 selecting adifferent active component from the displayed components such that theselected component's data card appears in the foreground as the activecomponent. The selection is made, for example, by using keyboard arrowkeys and/or quick and deliberate mouse strokes indicating the directionin which to flip through data card deck 920.

In some implementations, features of the isolation display mode and theradial display mode are combined in a single display mode such thatmultiple data cards are presented simultaneously in GUI 111 and suchthat selecting a data card for display in the foreground, as describedabove, also highlights the corresponding component in model 200 and/orbrowser 210.

The selected display mode is deactivated, for example, by invoking acommand or selecting/deactivating the display mode button 910 ininteractive display element 900. In some implementations, the selecteddisplay mode is temporarily deactivated by moving the mouse pointer orcursor outside the data card area. Moving the mouse pointer or cursorinto the data card area reactivates the selected display mode.

Another aspect of this disclosure relates to providing a search or queryfunction to quickly identify and/or select components based on userspecified search criteria. The search feature is accessible via a searchfield 1000 in interactive display element 900. In some implementations,search field 1000 is hidden from view until activated by placing themouse pointer or cursor over a particular area 1010 of data card 1020,for example, a bottom edge of the data card. FIGS. 10A-10C illustrate ananimated sequence for activating search field 1000. Search field 1000 isdeactivated/hidden by placing the mouse pointer or cursor over the samearea 1010 of data card 1020. Search field 1000 enables a user to searchproperty values associated with the components included in model 200using user specified search criteria, for example, a text string. If theradial display mode or combined display mode is active, the data cardscorresponding to the components identified in the search results aredisplayed simultaneously in GUI 111. Presenting the search results inthe radial or combined display mode also enables the user to quickly andeasily flip through the search results using the techniques describedabove. As the number of components identified in the search results isreduced by modifying/narrowing the search criteria, the number of datacards displayed is also reduced.

FIG. 11 illustrates an example system 1100 configured to presentproperty information associated with a selected component 211 in thecontext of model 200 and browser 210, enable quick identification of acomponent in model 200, implement the techniques described above forpresenting and navigating between multiple data cards, enable thepresentation of a revision history within GUI 111, and provide a searchor query function to quickly identify and/or select components based onuser specified search criteria. A data processing apparatus 1110includes hardware/firmware, an operating system and one or moreapplications or application modules, including an application 1112. Theapplication 1112 can be, for example, a CAD program. As used within thisspecification, the term “application” refers to a computer program thatthe user perceives as a distinct computer tool used for a definedpurpose. The application 1112 can be built entirely into the operatingsystem (OS) of the data processing apparatus 1110, or the application1112 can have different components located in different locations (e.g.,one portion in the OS or kernel mode, one portion in the user mode, andone portion in a remote server, such as server 1113), and theapplication 1112 can be built on a runtime library serving as a softwareplatform of the apparatus 1110. Moreover, the application 1112 can be aGUI application (e.g., a Web browser) that connects to one or moreprocessors 1118 (e.g., one or more Web servers) over a network 1128 andprovides functionality, such as CAD functionality, as a network service.In various implementations, the application 1112 can be a recipientapplication that can receive one or more user inputs corresponding towindow movement. The application 1112 includes machine-readableinstructions that, when executed, present a representation of one ormore application objects to be displayed on the data processingapparatus 1110.

The data processing apparatus 1110 includes one or more processors 1118and at least one computer-readable medium 1120. The at least onecomputer-readable medium 1120 can include a random access memory (RAM) aprogram memory (for example, a writable read-only memory (ROM) such as aflash ROM), a hard drive, and a removable disk drive (e.g., a floppydisk, compact disk (CD), or digital versatile disk (DVD) drive). Allsuch computer-readable media can be suitable for storing executable orinterpretable computer programs, including programs or applicationcomponents embodying aspects of the subject matter described in thisspecification. In addition, the data processing apparatus 410 caninclude a hard drive controller, a video controller, and an input/output(I/O) controller coupled by a system bus. The apparatus 1110 can bepreprogrammed, in ROM, for example, or it can be programmed (andreprogrammed) by loading a program from another source (for example,from a floppy disk, a CD-ROM, DVD, or another computer).

The data processing apparatus 1110 can also include one or moreinput/output (I/O) interface devices, such as a wireless and/or wiredcommunication interface 1122. The data processing apparatus cancommunicate with one or more clients 1190 or servers 1113 using thecommunication interface 1122 over network 1128 according to the type ofcommunication implemented by the network 1128. For example, thecommunication interface 1122 can communicate using a wireless Bluetoothsession, a wired USB session, a TCP/IP session (both wireless andwired), a wireless infra-red (IR) session, or other communicationsessions using the appropriate network. That is, network 1128 may be aBluetooth network, a USB network, TCP/IP network, an IR network, or avariety of other types of networks. Once programmed as described in thisspecification, the data processing apparatus 1110 is operable to providewindow movement functionality using any of the techniques described inthis specification.

Various implementations of the systems and techniques described in thisspecification can be realized in digital electronic circuitry,integrated circuitry, specially designed ASICs (application specificintegrated circuits), computer hardware, firmware, software, and/orcombinations thereof. These various implementations can includeimplementation in one or more computer programs that are executableand/or interpretable on a programmable system including at least oneprogrammable processor, which may be special or general purpose, coupledto receive data and instructions from, and to transmit data andinstructions to, a storage system, at least one input device, and atleast one output device.

These computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor, and can be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used in this specification, the terms “machine-readablemedium” “computer-readable medium” refers to any computer programproduct, apparatus and/or device (e.g., magnetic discs, optical disks,memory, Programmable Logic Devices (PLDs)) used to provide machineinstructions and/or data to a programmable processor.

To provide for interaction with a user, the systems and techniquesdescribed here can be implemented on a computer having a display device(e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor)for displaying information to the user and a keyboard and a pointingdevice (e.g., a mouse or a trackball) by which the user can provideinput to the computer. Other kinds of devices can be used to provide forinteraction with a user as well; for example, feedback provided to theuser can be any form of sensory feedback (e.g., visual feedback,auditory feedback, or tactile feedback); and input from the user can bereceived in any form, including acoustic, speech, or tactile input.

The systems and techniques described here can be implemented in acomputing system that includes a back-end component (e.g., as a dataserver), or that includes a middleware component (e.g., an applicationserver), or that includes a front-end component (e.g., a client computerhaving a graphical user interface or a Web browser through which a usercan interact with an implementation of the systems and techniquesdescribed here), or any combination of such back-end, middleware, orfront-end components. The components of the system can be interconnectedby any form or medium of digital data communication (e.g., acommunication network). Examples of communication networks include alocal area network (“LAN”), a wide area network (“WAN”), and theInternet.

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

A number of embodiments of the subject matter have been described.Nevertheless, it will be understood that various modifications may bemade without departing from the spirit and scope of the invention. Forexample, various forms of the flows shown above may be used, with stepsre-ordered, added, or removed. Also, although several applications ofthe payment systems and methods have been described, it should berecognized that numerous other applications are contemplated.Accordingly, other embodiments are within the scope of the followingclaims.

While this specification contains many specifics, these should not beconstrued as limitations on the scope of the invention or of what may beclaimed, but rather as descriptions of features specific to particularembodiments of the invention. Certain features that are described inthis specification in the context of separate embodiments can also beimplemented in combination in a single embodiment. Conversely, variousfeatures that are described in the context of a single embodiment canalso be implemented in multiple embodiments separately or in anysuitable subcombination. Moreover, although features may be describedabove as acting in certain combinations and even initially claimed assuch, one or more features from a claimed combination can in some casesbe excised from the combination, and the claimed combination may bedirected to a subcombination or variation of a subcombination.

1. A computer-implemented method, comprising: receiving selection of acomponent of a model presented in a graphical user interface (GUI) of acomputer aided design tool, the GUI comprising an interactive displayelement having an arrangement of property fields related to the selectedcomponent; determining property values associated with the propertyfields based on the selected component; and providing the determinedproperty values in corresponding property fields of the interactivedisplay element for presentation in the GUI in conjunction with themodel; wherein responsive to receiving selection of a differentcomponent of the model, the property fields are updated with propertyvalues corresponding to the different component.
 2. The method of claim1, wherein receiving selection of the component comprises receivingselection of multiple components and providing the determined propertyvalues comprises providing a predetermined property value in thecorresponding property field if property values associated with theproperty field differ between the multiple components.
 3. The method ofclaim 1, wherein the property fields include an image field and thedetermined property values include a thumbnail image.
 4. The method ofclaim 3, wherein receiving selection of the component comprisesreceiving selection of multiple components and providing the determinedproperty values comprises providing thumbnail images of the multiplecomponents in the image field for presentation in the GUI.
 5. The methodof claim 1, wherein receiving selection of the component comprisesreceiving selection of multiple components, the method furthercomprising: receiving a replacement property value for a selectedproperty field in the interactive display element; and updating a sameproperty value of each of the multiple components based on thereplacement property value.
 6. The method of claim 1, wherein thedetermined property values are a first set of property values andwherein the interactive display element is operable to select a revisionof the selected component, the method further comprising: receivinginput indicating selection of a different revision of the selectedcomponent in the interactive display element; and responsive to theinput: determining a second set of property values based on thedifferent revision of the selected component; and providing the secondset of property values in corresponding property fields of theinteractive display element for presentation in the GUI in conjunctionwith the model.
 7. The method of claim 6, wherein the different revisionof the selected component is a previous revision, and wherein providingthe second set of property values comprises highlighting display fieldshaving a different property value than a property value of a recentrevision of the selected component.
 8. The method of claim 7, the methodfurther comprising receiving input from the interactive display elementindicating the property value of the recent revision of the selectedcomponent is to be set to the different property value.
 9. The method ofclaim 6, wherein the interactive display element comprises a slide baroperable to select the revision of the selected component.
 10. Themethod of claim 1, wherein the interactive display element is operableto select a display mode, the method further comprising: receiving inputindicating selection of a first display mode of the interactive displayelement; and responsive to the input, providing information related toone or more additional components for presentation in the GUI with themodel.
 11. The method of claim 10, wherein providing informationcomprises determining a set of property values for each of the one ormore additional components and providing at least a portion of each setof property values.
 12. The method of claim 11, wherein the arrangementof property fields is a data card arrangement and wherein providinginformation comprises providing the information for presentation in theGUI as one or more additional data cards corresponding to the one ormore additional components, wherein the portion of each set of propertyvalues is displayed.
 13. The method of claim 10, the method furthercomprising receiving a selection of the one or more additionalcomponents.
 14. The method of claim 10, wherein the interactive displayelement comprises a foreground display element for presenting propertyvalues associated with an active component chosen from the selectedcomponent and the one or more additional components.
 15. The method ofclaim 14, the method further comprising: receiving input from theinteractive display element indicating selection of a different activecomponent; and responsive to the input, providing property valuesassociated with the different active component for presentation in theforeground display element.
 16. The method of claim 15, wherein theselected component and the one or more additional components arepresented in a circular list and the input indicating selection of thedifferent active component further indicates whether the differentactive component selected is before or after the active component in thecircular list.
 17. A computer program product tangibly embodied in acomputer-readable storage device, the computer program product includinginstructions operable to cause one or more data processing apparatus toperform operations comprising: receiving selection of a component of amodel presented in a graphical user interface (GUI) of a computer aideddesign tool, the GUI comprising an interactive display element having anarrangement of property fields related to the selected component;determining property values associated with the property fields based onthe selected component; and providing the determined property values incorresponding property fields of the interactive display element forpresentation in the GUI in conjunction with the model; whereinresponsive to receiving selection of a different component of the model,the property fields are updated with property values corresponding tothe different component.
 18. The program product of claim 17, whereinreceiving selection of the component comprises receiving selection ofmultiple components and providing the determined property valuescomprises providing a predetermined property value in the correspondingproperty field if property values associated with the property fielddiffer between the multiple components.
 19. The program product of claim17, wherein the property fields include an image field and thedetermined property values include a thumbnail image.
 20. The programproduct of claim 19, wherein receiving selection of the componentcomprises receiving selection of multiple components and providing thedetermined property values comprises providing thumbnail images of themultiple components in the image field for presentation in the GUI. 21.The program product of claim 17, wherein receiving selection of thecomponent comprises receiving selection of multiple components, theoperations further comprising: receiving a replacement property valuefor a selected property field in the interactive display element; andupdating a same property value of each of the multiple components basedon the replacement property value.
 22. The program product of claim 17,wherein the determined property values are a first set of propertyvalues and wherein the interactive display element is operable to selecta revision of the selected component, the operations further comprising:receiving input indicating selection of a different revision of theselected component in the interactive display element; and responsive tothe input: determining a second set of property values based on thedifferent revision of the selected component; and providing the secondset of property values in corresponding property fields of theinteractive display element for presentation in the GUI in conjunctionwith the model.
 23. The program product of claim 22, wherein thedifferent revision of the selected component is a previous revision, andwherein providing the second set of property values compriseshighlighting display fields having a different property value than aproperty value of a recent revision of the selected component.
 24. Theprogram product of claim 23, the operations further comprising receivinginput from the interactive display element indicating the property valueof the recent revision of the selected component is to be set to thedifferent property value.
 25. The program product of claim 22, whereinthe interactive display element comprises a slide bar operable to selectthe revision of the selected component.
 26. The program product of claim17, wherein the interactive display element is operable to select adisplay mode, the operations further comprising: receiving inputindicating selection of a first display mode of the interactive displayelement; and responsive to the input, providing information related toone or more additional components for presentation in the GUI with themodel.
 27. The program product of claim 26, wherein providinginformation comprises determining a set of property values for each ofthe one or more additional components and providing at least a portionof each set of property values.
 28. The program product of claim 27,wherein the arrangement of property fields is a data card arrangementand wherein providing information comprises providing the informationfor presentation in the GUI as one or more additional data cardscorresponding to the one or more additional components, wherein theportion of each set of property values is displayed.
 29. The programproduct of claim 26, the operations further comprising receiving aselection of the one or more additional components.
 30. The programproduct of claim 26, wherein the interactive display element comprises aforeground display element for presenting property values associatedwith an active component chosen from the selected component and the oneor more additional components.
 31. The program product of claim 30, theoperations further comprising: receiving input from the interactivedisplay element indicating selection of a different active component;and responsive to the input, providing property values associated withthe different active component for presentation in the foregrounddisplay element.
 32. The program product of claim 31, wherein theselected component and the one or more additional components arepresented in a circular list and the input indicating selection of thedifferent active component further indicates whether the differentactive component selected is before or after the active component in thecircular list.
 33. A system comprising: a computer-readable storagedevice including instructions; and one or more data processing apparatusoperable to execute the instructions and perform operations comprising:receiving selection of a component of a model presented in a graphicaluser interface (GUI) of a computer aided design tool, the GUI comprisingan interactive display element having an arrangement of property fieldsrelated to the selected component; determining property valuesassociated with the property fields based on the selected component; andproviding the determined property values in corresponding propertyfields of the interactive display element for presentation in the GUI inconjunction with the model; wherein responsive to receiving selection ofa different component of the model, the property fields are updated withproperty values corresponding to the different component.
 34. The systemof claim 33, wherein receiving selection of the component comprisesreceiving selection of multiple components and providing the determinedproperty values comprises providing a predetermined property value inthe corresponding property field if property values associated with theproperty field differ between the multiple components.
 35. The system ofclaim 33, wherein the property fields include an image field and thedetermined property values include a thumbnail image.
 36. The system ofclaim 35, wherein receiving selection of the component comprisesreceiving selection of multiple components and providing the determinedproperty values comprises providing thumbnail images of the multiplecomponents in the image field for presentation in the GUI.
 37. Thesystem of claim 33, wherein receiving selection of the componentcomprises receiving selection of multiple components, the operationsfurther comprising: receiving a replacement property value for aselected property field in the interactive display element; and updatinga same property value of each of the multiple components based on thereplacement property value.
 38. The system of claim 33, wherein thedetermined property values are a first set of property values andwherein the interactive display element is operable to select a revisionof the selected component, the operations further comprising: receivinginput indicating selection of a different revision of the selectedcomponent in the interactive display element; and responsive to theinput: determining a second set of property values based on thedifferent revision of the selected component; and providing the secondset of property values in corresponding property fields of theinteractive display element for presentation in the GUI in conjunctionwith the model.
 39. The system of claim 38, wherein the differentrevision of the selected component is a previous revision, and whereinproviding the second set of property values comprises highlightingdisplay fields having a different property value than a property valueof a recent revision of the selected component.
 40. The system of claim39, the system further comprising receiving input from the interactivedisplay element indicating the property value of the recent revision ofthe selected component is to be set to the different property value. 41.The system of claim 38, wherein the interactive display elementcomprises a slide bar operable to select the revision of the selectedcomponent.
 42. The system of claim 33, wherein the interactive displayelement is operable to select a display mode, the operations furthercomprising: receiving input indicating selection of a first display modeof the interactive display element; and responsive to the input,providing information related to one or more additional components forpresentation in the GUI with the model.
 43. The system of claim 42,wherein providing information comprises determining a set of propertyvalues for each of the one or more additional components and providingat least a portion of each set of property values.
 44. The system ofclaim 43, wherein the arrangement of property fields is a data cardarrangement and wherein providing information comprises providing theinformation for presentation in the GUI as one or more additional datacards corresponding to the one or more additional components, whereinthe portion of each set of property values is displayed.
 45. The systemof claim 42, the operations further comprising receiving a selection ofthe one or more additional components.
 46. The system of claim 42,wherein the interactive display element comprises a foreground displayelement for presenting property values associated with an activecomponent chosen from the selected component and the one or moreadditional components.
 47. The system of claim 46, the operationsfurther comprising: receiving input from the interactive display elementindicating selection of a different active component; and responsive tothe input, providing property values associated with the differentactive component for presentation in the foreground display element. 48.The system of claim 47, wherein the selected component and the one ormore additional components are presented in a circular list and theinput indicating selection of the different active component furtherindicates whether the different active component selected is before orafter the active component in the circular list.